﻿namespace DesignModeConsole.行为型.职责链模式;

/// <summary>
/// 接口父类
/// </summary>
public interface IHandler2
{
    bool Handler();
}

public class Handler2A : IHandler2
{
    public bool Handler()
    {
        var handled = false;
        // 业务逻辑计算
        Console.WriteLine("我是Handler2A");
        return handled;
    }
}

public class Handler2B : IHandler2
{
    public bool Handler()
    {
        var handled = false;
        // 业务逻辑计算
        Console.WriteLine("我是Handler2B");
        return handled;
    }
}

public class HandlerChain2
{
    private readonly List<IHandler2> _handler2S = new List<IHandler2>();

    public void AddHandler(IHandler2 handler2)
    {
        _handler2S.Add(handler2);
    }

    public void Handle()
    {
        foreach (var handler in _handler2S)
        {
            var handled = handler.Handler();
            if (handled)
                break;
        }
    }
}